/*
 * Copyright 2011 Katsunori Koyanagi
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package sweezy.core.log.writers
{
	import flash.events.SecurityErrorEvent;
	import flash.events.StatusEvent;
	import flash.net.LocalConnection;
	import sweezy.core.log.LogWriter;

	public class MiniDebugLogWriter extends LogWriter
	{

		private var _connection:String;

		private var _lc:LocalConnection;

		private var _method:String;

		public function MiniDebugLogWriter(connection:String = "_mdbtrace", method:String = "trace")
		{
			_lc = new LocalConnection();
			_lc.addEventListener(StatusEvent.STATUS, onStatus);
			_lc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
			_connection = connection;
			_method = method;
		}

		override protected function writeString(level:uint, name:String, logString:String):void
		{
			_lc.send(_connection, _method, logString);
		}

		private function onSecurityError(e:SecurityErrorEvent):void
		{
			trace(e);
		}

		private function onStatus(e:StatusEvent):void
		{
			if (e.level == "error")
			{
				trace(e);
			}
		}
	}
}
